package io.bluerain.core;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by wscl on 2015/6/14.
 */
public class Str {
    /**
     * 判断一个字符串是否非空
     * <li>""或者"null"都会判断为空</li>
     *
     * @param str 字符串
     * @return 结果
     */
    public static boolean notNullOrEmpty(String str) {
        if (str == null)
            return false;
        if ("".equals(str.trim()))
            return false;
        if ("null".equals(str.trim()))
            return false;
        return true;
    }

    public static boolean notNullOrEmpty(String str, String... strings) {
        if (!notNullOrEmpty(str))
            return false;
        if (Obj.notNullOrEmpty(strings)) {
            for (String s : strings) {
                if (!notNullOrEmpty(s))
                    return false;
            }
        }
        return true;
    }

    /**
     * 简化正则字符串匹配
     *
     * @param body  原字符串
     * @param regex 表达式
     * @param group group位置
     * @return 匹配后的值
     */
    public static String match(String body, String regex, Integer group) {
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(body);
        while (m.find()) {
            if (group != null)
                return m.group(group);
            return m.group();
        }
        return null;
    }

    /**
     * 简化正则字符串匹配（不支持指定group）
     *
     * @param body  原字符串
     * @param regex 表达式
     * @return 匹配后的值
     */
    public static String match(String body, String regex) {
        return match(body, regex, null);
    }

    /**
     * 过滤HTML文本
     *
     * @param body 原文本
     * @return 过滤后的内容
     */
    public static String filterHTML(String body) {
        return body.replaceAll("<([^>]*)>", "");
    }
}
